﻿/*
输入：
6 7
5 6 -2
1 2 1
5 3 1
2 5 2
2 4 -3
4 6 4
1 3 5
输出：
1
*/
// n个城市，m条路
string[] nm = Console.ReadLine().Split(" ");
int n = int.Parse(nm[0]);
int m = int.Parse(nm[1]);

// 构建图 -- 邻接表
List<(int, int, int)> edges = new List<(int, int, int)>();

for (int i = 0; i < m; i++)
{
    string[] stv = Console.ReadLine().Split(" ");
    int s = int.Parse(stv[0]);
    int t = int.Parse(stv[1]);
    int v = int.Parse(stv[2]);
    edges.Add((s, t, v));
}

// Bellman_ford 算法
int[] minDist = new int[n + 1];
Array.Fill(minDist, int.MaxValue);
minDist[1] = 0;
for (int i = 0; i < n; i++)
{
    foreach ((int s, int t, int v) in edges)
    {
        minDist[t] = minDist[t] > minDist[s] + v ? minDist[s] + v : minDist[t];
    }
}

// 检索是否有回路
foreach ((int s, int t, int v) in edges)
{
    // 如果还有刷新
    if (minDist[t] > minDist[s] + v)
    {
        Console.WriteLine("circle");
        return;
    }
}

Console.WriteLine(minDist[n] == int.MaxValue ? "unconnected":minDist[n]);